class UserInfoEntity {
	int code;
	UserInfoData data;

	UserInfoEntity({this.code, this.data});

	UserInfoEntity.fromJson(Map<String, dynamic> json) {
		code = json['code'];
		data = json['data'] != null ? new UserInfoData.fromJson(json['data']) : null;
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['code'] = this.code;
		if (this.data != null) {
      data['data'] = this.data.toJson();
    }
		return data;
	}
}

class UserInfoData {
	List<UserInfoDataMyAnimal> myAnimals;
	UserInfoDataUser user;

	UserInfoData({this.myAnimals, this.user});

	UserInfoData.fromJson(Map<String, dynamic> json) {
		if (json['my_animals'] != null) {
			myAnimals = new List<UserInfoDataMyAnimal>();(json['my_animals'] as List).forEach((v) { myAnimals.add(new UserInfoDataMyAnimal.fromJson(v)); });
		}
		user = json['user'] != null ? new UserInfoDataUser.fromJson(json['user']) : null;
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		if (this.myAnimals != null) {
      data['my_animals'] =  this.myAnimals.map((v) => v.toJson()).toList();
    }
		if (this.user != null) {
      data['user'] = this.user.toJson();
    }
		return data;
	}
}

class UserInfoDataMyAnimal {
	dynamic birthday;
	String categoryName;
	int deviceId;
	int sex;
	int weight;
	String ifid;
	String nick;
	int loveId;
	bool bindStatus;
	int categoryId;
	int animalId;
	String header;
	String bindMsg;
	UserInfoDataMyAnimalsAge age;

	UserInfoDataMyAnimal({this.birthday, this.categoryName, this.deviceId, this.sex, this.weight, this.ifid, this.nick, this.loveId, this.bindStatus, this.categoryId, this.animalId, this.header, this.bindMsg, this.age});

	UserInfoDataMyAnimal.fromJson(Map<String, dynamic> json) {
		birthday = json['birthday'];
		categoryName = json['category_name'];
		deviceId = json['device_id'];
		sex = json['sex'];
		weight = json['weight'];
		ifid = json['ifid'];
		nick = json['nick'];
		loveId = json['love_id'];
		bindStatus = json['bind_status'];
		categoryId = json['category_id'];
		animalId = json['animal_id'];
		header = json['header'];
		bindMsg = json['bind_msg'];
		age = json['age'] != null ? new UserInfoDataMyAnimalsAge.fromJson(json['age']) : null;
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['birthday'] = this.birthday;
		data['category_name'] = this.categoryName;
		data['device_id'] = this.deviceId;
		data['sex'] = this.sex;
		data['weight'] = this.weight;
		data['ifid'] = this.ifid;
		data['nick'] = this.nick;
		data['love_id'] = this.loveId;
		data['bind_status'] = this.bindStatus;
		data['category_id'] = this.categoryId;
		data['animal_id'] = this.animalId;
		data['header'] = this.header;
		data['bind_msg'] = this.bindMsg;
		if (this.age != null) {
      data['age'] = this.age.toJson();
    }
		return data;
	}
}

class UserInfoDataMyAnimalsAge {
	int month;
	int year;
	int notBirth;
	int day;

	UserInfoDataMyAnimalsAge({this.month, this.year, this.notBirth, this.day});

	UserInfoDataMyAnimalsAge.fromJson(Map<String, dynamic> json) {
		month = json['month'];
		year = json['year'];
		notBirth = json['not_birth'];
		day = json['day'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['month'] = this.month;
		data['year'] = this.year;
		data['not_birth'] = this.notBirth;
		data['day'] = this.day;
		return data;
	}
}

class UserInfoDataUser {
	dynamic birthday;
	int payPoints;
	String accountNumber;
	String city;
	dynamic accToken;
	bool isSetPas;
	int sign;
	dynamic realName;
	String nick;
	String head;
	String password;
	dynamic identification;
	dynamic weibo;
	dynamic jgId;
	dynamic accid;
	int id;
	int rankPoints;
	dynamic email;
	dynamic qq;
	int types;
	String level;
	int lastLogin;
	String sex;
	dynamic wechat;
	bool isSign;
	int money;
	String phone;
	int status;
	dynamic desc;

	UserInfoDataUser({this.birthday, this.payPoints, this.accountNumber, this.city, this.accToken, this.isSetPas, this.sign, this.realName, this.nick, this.head, this.password, this.identification, this.weibo, this.jgId, this.accid, this.id, this.rankPoints, this.email, this.qq, this.types, this.level, this.lastLogin, this.sex, this.wechat, this.isSign, this.money, this.phone, this.status, this.desc});

	UserInfoDataUser.fromJson(Map<String, dynamic> json) {
		birthday = json['birthday'];
		payPoints = json['pay_points'];
		accountNumber = json['account_number'];
		city = json['city'];
		accToken = json['acc_token'];
		isSetPas = json['isSetPas'];
		sign = json['sign'];
		realName = json['real_name'];
		nick = json['nick'];
		head = json['head'];
		password = json['password'];
		identification = json['identification'];
		weibo = json['weibo'];
		jgId = json['jg_id'];
		accid = json['accid'];
		id = json['id'];
		rankPoints = json['rank_points'];
		email = json['email'];
		qq = json['qq'];
		types = json['types'];
		level = json['level'];
		lastLogin = json['last_login'];
		sex = json['sex'];
		wechat = json['wechat'];
		isSign = json['isSign'];
		money = json['money'];
		phone = json['phone'];
		status = json['status'];
		desc = json['desc'];
	}

	Map<String, dynamic> toJson() {
		final Map<String, dynamic> data = new Map<String, dynamic>();
		data['birthday'] = this.birthday;
		data['pay_points'] = this.payPoints;
		data['account_number'] = this.accountNumber;
		data['city'] = this.city;
		data['acc_token'] = this.accToken;
		data['isSetPas'] = this.isSetPas;
		data['sign'] = this.sign;
		data['real_name'] = this.realName;
		data['nick'] = this.nick;
		data['head'] = this.head;
		data['password'] = this.password;
		data['identification'] = this.identification;
		data['weibo'] = this.weibo;
		data['jg_id'] = this.jgId;
		data['accid'] = this.accid;
		data['id'] = this.id;
		data['rank_points'] = this.rankPoints;
		data['email'] = this.email;
		data['qq'] = this.qq;
		data['types'] = this.types;
		data['level'] = this.level;
		data['last_login'] = this.lastLogin;
		data['sex'] = this.sex;
		data['wechat'] = this.wechat;
		data['isSign'] = this.isSign;
		data['money'] = this.money;
		data['phone'] = this.phone;
		data['status'] = this.status;
		data['desc'] = this.desc;
		return data;
	}
}
